/*
 * @Author: howcode 1051495009@qq.com
 * @Date: 2024-06-19 20:14:09
 * @LastEditors: howcode 1051495009@qq.com
 * @LastEditTime: 2024-06-19 20:25:05
 * @Description: 中文生成
 */
export default class ChineseName {
  private familyNames = ['赵', '钱', '孙', '李', '周', '吴', '郑', '王', '冯', '陈', '褚', '卫', '蒋', '沈', '韩', '杨', '朱', '秦', '尤', '许',
    '何', '吕', '施', '张', '孔', '曹', '严', '华', '金', '魏', '陶', '姜', '戚', '谢', '邹', '喻', '柏', '水', '窦', '章',
    '云', '苏', '潘', '葛', '奚', '范', '彭', '郎', '鲁', '韦', '昌', '马', '苗', '凤', '花', '方', '俞', '任', '袁', '柳',
    '鲍', '史', '唐', '费', '廉', '岑', '薛', '雷', '贺', '倪', '汤', '滕', '殷', '罗', '毕', '郝', '邬', '安', '常',
    '乐', '于', '时', '傅', '皮', '卞', '齐', '康', '伍', '余', '元', '卜', '顾', '孟', '平', '黄', '和', '穆', '萧', '尹',
    '姚', '邵', '湛', '汪', '祁', '毛', '禹', '狄', '米', '贝', '明', '臧', '计', '伏', '成', '戴', '谈', '宋', '茅', '庞',
    '熊', '纪', '舒', '屈', '项', '祝', '董', '粱', '杜', '阮', '蓝', '闵', '席', '季', '麻', '强', '贾', '路', '娄',
    '江', '童', '颜', '郭', '梅', '盛', '林', '刁', '钟', '徐', '邱', '骆', '高', '夏', '蔡', '田', '樊', '胡', '凌', '霍',
    '虞', '万', '支', '柯', '卢', '莫', '经', '房', '裘', '缪', '干', '解', '应', '宗', '丁', '邓',
    '郁', '单', '杭', '洪', '包', '左', '石', '崔', '吉', '钮', '龚', '程', '嵇', '邢', '裴', '陆', '荣', '翁',
    '荀', '甄', '家', '封', '靳', '井', '段', '巫',
    '乌', '焦', '巴', '谷', '车', '侯', '班', '秋', '伊', '宫',
    '宁', '仇', '甘', '厉', '武', '符', '刘', '景', '詹', '龙', '叶',
    '郜', '黎', '薄', '白', '蒲', '邰', '赖', '卓', '蔺', '屠', '蒙',
    '池', '乔', '翟', '谭', '姬', '申',
    '冉', '雍', '桂', '牛', '燕', '农',
    '温', '庄', '晏', '柴', '瞿', '阎', '习', '艾', '鱼', '容', '向', '古', '易',
    '廖', '步', '都', '耿', '满', '匡', '文', '寇',
    '巩', '聂', '晁', '敖', '冷', '辛',
    '那', '简', '饶', '曾', '沙', '鞠', '关', '查',
    '游', '权', '楚', '岳', '言', '况', '商', '佘', '年', '佟',
    '司马', '上官', '欧阳', '夏侯', '诸葛', '闻人', '东方', '赫连', '皇甫', '尉迟', '公孙', '轩辕', '令狐',
    '钟离', '宇文', '长孙', '慕容', '司徒', '端木', '拓拔', '百里', '东郭', '呼延', '西门', '南宫'];
  private names = "贵福生龙元全国胜学祥才发武新利清飞彬富顺信子杰涛昌成康星光天达安岩中茂进林有坚和彪博绍功松善厚庆磊民友裕河哲江超浩亮政谦亨奇固之轮翰朗伯宏言若鸣朋斌梁栋维启克伦翔旭鹏月莺媛艳瑞凡佳嘉琼勤珍贞莉桂娣叶璧璐娅琦晶妍茜秋珊莎锦黛青倩婷姣婉娴瑾颖露瑶怡婵雁蓓".split("");
  
  public random(familyName:any) {
    familyName = familyName || this.pick(this.familyNames);
    var name = "";
    var count = Math.random() > .66 ? 1 : 2;
    for (var i = 0; i < count; i++) {
        name += this.pick(this.names);
    }
    return familyName + name;
  }

  public pick(arr:string[]) {
      arr = arr || [];
      return arr[this.natural(0, arr.length - 1)];
  }

  public natural(min:number, max:number) {
      return Math.round(Math.random() * (max - min)) + min;
  }
}